ACL2 Theorems About Commercial Microprocessors
نویسندگان
چکیده
ACL2 is a mechanized mathematical logic intended for use in specifying and proving properties of computing machines. In two independent projects, industrial engineers have collaborated with researchers at Computational Logic, Inc. (CLI), to use ACL2 to model and prove properties of state-of-the-art commercial microprocessors prior to fabrication. In the rst project, Motorola, Inc., and CLI collaborated to specify Motorola's complex arithmetic processor (CAP), a single-chip, digital signal processor (DSP) optimized for communications signal processing. Using the speciication, we proved the correctness of several CAP mi-crocode programs. The second industrial collaboration involving ACL2 was between Advanced Micro Devices, Inc. (AMD) and CLI. In this work we proved the correctness of the kernel of the oating-point division operation on AMD's rst Pentium-class microprocessor, the AMD5K86. In this paper, we discuss ACL2 and these industrial applications, with particular attention to the microcode veriication work. 1 ACL2 ACL2 stands for \A Computational Logic for Applicative Common Lisp." ACL2 is both a mathematical logic and system of mechanical tools which can be used to construct proofs in the logic. The logic, which formalizes a subset of Common Lisp, is a high level programming language which can be executed eeciently on many host platforms. Thus, programmers can deene models of computational systems and these models can be executed (\simulated") to test them on concrete data. But because the language is also a formal mathematical logic it is possible to reason about the models symbolically. Indeed, it is possible to prove theorems establishing properties of the models and to check these proofs with mechanical
منابع مشابه
Single-Threaded Objects in ACL2
ACL2 is a rst-order applicative programming language based on Common Lisp. It is also a mathematical logic for which a mechanical theorem-prover has been implemented in the style of the Boyer-Moore theorem prover. The ACL2 system is used primarily in the modeling and veriica-tion of computer hardware and software, where the executability of the language allows models to be used as prototype des...
متن کاملProving Theorems about Java and the JVM with ACL2
We describe a methodology for proving theorems mechanically about Java methods. The theorem prover used is the ACL2 system, an industrial-strength version of the Boyer-Moore theorem prover. An operational semantics for a substantial subset of the Java Virtual Machine (JVM) has been defined in ACL2. Theorems are proved about Java methods and classes by compiling them with javac and then proving ...
متن کاملContinuity and Differentiability in ACL2
This case study shows how ACL2 can be used to reason about the real and complex numbers, using non-standard analysis. It describes some modifications to ACL2 that include the irrational real and complex numbers in ACL2’s numeric system. It then shows how the modified ACL2 can prove classic theorems of analysis, such as the intermediate-value and mean-value theorems.
متن کاملRockwell Collins Typed ACL2 Records
We show a macro for introducing operations on typed records. The underlying theorems proved about these records include what is proved about records introduced using the standard ACL2 record book [2], as well as an additional theorem about the type of the elements. The standard ACL2 distribution contains a \records" book that provides an unconventional implementation of two functions: g (for \g...
متن کاملAbstract Stobjs and Their Application to ISA Modeling
In support of our modeling and verification efforts for microprocessors, we have introduced a new ACL2 event to support the definition of abstract stobjs. The traditional single-threaded objects supported by ACL2, “concrete” stobjs [10], are well known to support efficient execution. While they allow a user to specify datatype restrictions for each defined field, they do not permit restrictions...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1996